﻿using System;
using System.Collections.Generic;

using System.Text;

using TerminologiaSinacor.Presenter;
using TerminologiaSinacor.Presenter.Utility;

using System.Data.OracleClient;
using System.Data;
using System.Configuration;

namespace TerminologiaSinacor.Presenter.DAL.Oracle
{
    public class ModuloDAO
    {

        public static List<Modulo> search()
        {
            List<Modulo> modulos = new List<Modulo>();

            string sql = @"select
                     modulo.COD_MODULO
                    ,modulo.NOME_MODULO
                    ,modulo.DESC_MODULO
                    ,modulo.COD_MODULO_PAI

                    ,moduloPai.COD_MODULO  COD_MODULO_PAI
                    ,moduloPai.NOME_MODULO NOME_MODULO_PAI
                    ,moduloPai.DESC_MODULO DESC_MODULO_PAI                 

                    from    TS_MODULO modulo 
                            left join TS_MODULO moduloPai on modulo.COD_MODULO_PAI = moduloPai.COD_MODULO
";

            using (IDataReader rdr = TerminologiaSinacor.Presenter.DAL.Oracle.OracleHelper.executeReader(ConfigurationManager.AppSettings["ConnectionStringSinaTools"], System.Data.CommandType.Text, sql, null))
            {
                while (rdr.Read())
                {
                    Modulo modulo = new Modulo();
                    modulo.codigo = rdr["COD_MODULO"].ToString();
                    modulo.nome = rdr["NOME_MODULO"].ToString();
                    modulo.codigoPai = rdr["COD_MODULO_PAI"].ToString();
                    modulo.nomePai = rdr["NOME_MODULO_PAI"].ToString();
                    modulo.NomeModuloNomePai = modulo.nome + ( modulo.nomePai.Trim() != "" ? " - " + modulo.nomePai : "" );
                    modulos.Add(modulo);                    
                }
            }

            return modulos;
        }
    }
}
